package com.yhd.service;

import com.yhd.entity.TCourseBooked;
import com.yhd.entity.dto.CourseBookedDto;
import com.yhd.entity.dto.UserDto;
import com.yhd.entity.query.CourseBookedVO;
import com.yhd.entity.result.ResultVo;
import com.yhd.model.ResultPage;

import java.util.List;

public interface CourseBookedService  {
	Integer getCourseBookeCount(Integer courseId, String userId);
	
	CourseBookedDto getUserCourseBooke(Integer courseId, String userId);
	CourseBookedDto getUserCourseBookeSubType(Integer courseId, String userId);

	Integer getUserFreeBookeCount(String userId);
	
	TCourseBooked selectBookeByOrderNo(String orderNo);

	void update(TCourseBooked courseBooked);
	
	TCourseBooked selectById(Integer orderId);
	
	List<CourseBookedDto> userOrderList(String type, Integer status,String userId);
	
	CourseBookedDto cancelOrder(CourseBookedVO bookedVO, UserDto userInfo);
	
	List<TCourseBooked> getUserCourseBookeList(String userId, Integer status);

	/**
	 * 订单列表
	 * @param courseBookedVO
	 * @return
	 */
	ResultPage<List<CourseBookedDto>> selectCourseBookedList(CourseBookedVO courseBookedVO);

	/**
	 * 订单详情
	 * @param courseBookedVO
	 * @return
	 */
	CourseBookedDto selectCourseBookedInfo(CourseBookedVO courseBookedVO);

	/**
	 * 修改订单
	 * @param courseBookedVO
	 * @param userInfo
	 * @return
	 */
	ResultVo<CourseBookedDto> putCourseBooked(CourseBookedVO courseBookedVO, UserDto userInfo);

	/**
	 * 活动报名列表
	 * @param courseBookedVO
	 * @return
	 */
    ResultPage<List<CourseBookedDto>> selectActivityOrderList(CourseBookedVO courseBookedVO);

	/**
	 * 获取课程约课列表
	 * @param courseBookedVO
	 * @return
	 */
    ResultPage<List<CourseBookedDto>> selectCourseSchList(CourseBookedVO courseBookedVO);

	CourseBookedDto getUserCourseSuccessBooke(Integer id, String id1);
}
